Foundations of software engineering  

Objectives and Contextualisation The subject provides an introduction to the foundations of software engineering, to object-oriented analysis and design, and to object-oriented programming. The basic training objectives of the subject are: Introducind the student in the key concepts of software engineering, seeing the singularities and differences with regard to civil engineering. Introducing the key concepts regarding the analysis and design of object-oriented software. Learning an object-oriented programming language. Specifically C ++. Competences Electronic Engineering for Telecommunication Develop personal work habits. Develop thinking habits. Learn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations. Work in a team. Telecommunication Systems Engineering Develop personal work habits. Develop thinking habits. Learn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations. Work in a team. Learning Outcomes Apply the basics of software engineering to the development of software applications. Critically evaluate the work done. Develop independent learning strategies. Develop scientific thinking. Develop the capacity for analysis and synthesis. Know and use the basics of programming in telecommunication networks, systems and services. Manage available time and resources. Manage available time and resources. Work in an organised manner. Use the basics of the architecture and methodology of design, verification and validation of software. Work autonomously. Work cooperatively. Content A. INTRODUCTION TO SOFTWARE ENGINEERING A1. Introduction: Is software engineering required? Basic Concepts Subject presentation. Software engineering vs. Civil Engineering. Software development cycle stages. Software development processes. Software Project planning. A2. Analysis and Design oriented to objects Effective modularization of a software. Object-oriented design. UML: Class Diagram. B. OBJECT ORIENTED PROGRAMMING IN C++ B1. Classes, Attributes, and Methods Declaration and definition of the basic elements. Class vs. Object. Accessibility: attributes and methods public and private. Function overloading B2. Enumerates. Function call mechanism. Dynamic Memory Enumerates Function call mechanism. Inline features Passing arguments by reference / constant reference. Allocation /dealocation of memory. Pointers arithmetic. B3. Constructors and Destructors. Operators Types of constructors. Destructors. Binary operators. The assignment operator. Objects and the this pointer. The friend concept. Streams. Operators >> and <<. B4. Inheritance, Polymorphism and Genericity Hierarchy. Generalization vs. Specification. Accessibility to 'protected' attributes and methods. Static and dynamic binding. Virtual functions. Template functions. Template classes.
Presential
English
Foundations of software engineering
English

Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or HaDEA. Neither the European Union nor the granting authority can be held responsible for them. The statements made herein do not necessarily have the consent or agreement of the ASTRAIOS Consortium. These represent the opinion and findings of the author(s).